﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using netDxf;
using netDxf.Entities;
using Prism.Events;

namespace CPlatePrintSys.Annotation.Events
{
    /// <summary>
    /// 事件参数：带控件ID的DXF文档。
    /// </summary>
    public class DisplayDxfPartArgs
    {
        public string ControlId { get; set; }
        public netDxf.DxfDocument Document { get; set; }
        
        /// <summary>
        /// Handle映射关系：原始Handle -> 镜像Handle
        /// </summary>
        public Dictionary<string, string> HandleMapping { get; set; }
        
        /// <summary>
        /// 实体映射关系：原始Handle -> 镜像实体
        /// </summary>
        public Dictionary<string, EntityObject> EntityMapping { get; set; }
        
        public DisplayDxfPartArgs()
        {
            HandleMapping = new Dictionary<string, string>();
            EntityMapping = new Dictionary<string, EntityObject>();
        }
    }
    
    public class DisplayDxfPartListArgs
    {
        public string ControlId { get; set; }
        public List<netDxf.DxfDocument> Documents { get; set; }
    }
    
    /// <summary>
    /// 显示DXF零件的事件。
    /// </summary>
    public class DisplayDxfPart : PubSubEvent<DisplayDxfPartArgs>
    {

    }

    public class DisplayDxfPartList : PubSubEvent<DisplayDxfPartListArgs>
    {

    }
}
